Soru & Cevap

Buttona Tıklayınca Emulator Kapanıyor

12.10.2017 - 11:08

Sayfa geçişi için bir butonu etkinleştirmeye çalışıyorum. İnternette izlediğim tutoriallara göre kodlama yaptım. Tuşa bastığımda app hata veriyor ve emulator kapanıyor. Bir yerde hata yapıyorum ama bulamadım.

 

Button kodlarım:

<Button
            android:id="@+id/button7"
            android:layout_width="73.75dp"
            android:layout_height="145dp"
            android:onClick="main2activity"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"
            android:background="?android:attr/selectableItemBackground"
            android:drawablePadding="0dp"
            android:drawableTop="@drawable/currencyusd48"
            android:text="SIGNALS"
            android:textColor="@android:color/background_light"
            android:textSize="12sp"

            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true" />

Main Activity Kodlarım:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button7 = (Button) findViewById(R.id.button7);
        button7.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v) {

                Intent i = new Intent(getApplicationContext(), Main2Activity.class);
                startActivity(i);


            }

        });
    }

}

Main2Activity Kodlarım:

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);



    }

Ve son olarak baş belası manifest kodlarım:


<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".Main2Activity" android:label="SIGNALS"></activity>
</application>

</manifest>

 

725 Görüntülenme

7 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user oziwan
oziwan
13.10.2017 - 09:46

Kodların son hali  şöyle:

 

MainActivity:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }


        public void open2ndActivity() {
            Intent i = new Intent(MainActivity.this, Main2Activity.class);
            startActivity(i);
        }

            }

Main2Activity:

package midas.forexium;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);



    }
}

Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="midas.forexium">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".Main2Activity" android:label="SIGNALS"></activity>
</application>

</manifest>

 

adem
13.10.2017 - 11:27
şunu buton kodlarına ekleyin android:onClick="open2ndActivity"
oziwan
14.10.2017 - 01:48
Ekli zaten.
Profile picture for user oziwan
oziwan
13.10.2017 - 09:43

Monitör deyince ben tüplü monitör anladım, pardon.:)

bayağı bir  fatal exception olmuş.

/sites/default/files/cevaplar/dosya/2020/file-ekran_goruntusu_2.png
Profile picture for user oziwan
oziwan
13.10.2017 - 04:12

Yazdıklarınızı aynen uyguladım, kod hataları düzeldi. Ancak emulator butona basınca yine kapandı ve yine diğer sayfaya geçememiş oldum.

Button kodlarımda bir sıkıntı olabilir mi?

adem
13.10.2017 - 06:44
kodlarınızın en son halini paylaşır mısınız?
picture-61684-1501749567.jpg
oğuzhanyiğit
13.10.2017 - 02:38
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void open2ndActivity() {
        Intent i = new Intent(MainActivity.this, Main2Activity.class);
        startActivity(i);
    }
}

 

picture-61684-1501749567.jpg
oğuzhanyiğit
13.10.2017 - 01:43

onClick'e sadece fonksiyon/metod tanımlanabilir diye biliyorum, ama gördüğüm kadarıyla siz class tanımlamışsınız, ve sanırım logic design'da mainactivity içindeki butona basıldğında main2activity'yi açmasını istiyorsunuz, ilk önce mainactivity içindeki onClickListener'ı tümden silin butonu initiazlie etmenize bile gerek yok(o yüzden Button btn = (Button) ... kısmını da silebilirsiniz) daha sonra aşağıdaki kodu mainactivity içine atın

public void open2ndActivity() {
    Intent i = new Intent(MainActivity.this, Main2Activity.class);
    startActivity(i);
}

ve en son olarak xml'de butona aşağıdaki property'yi ekleyin

android:onClick="open2ndActivity"

 

çalışması lazım

oziwan
13.10.2017 - 01:38
Teşekkür ederim ama @Override ve public void open2ndActivity() dizininin parantez kısmında hata verdi. Hatalar : modifier public not allowed here , annonotation type not applicable to this kind of declaration , 'void'type not allowed here
Oğuzhan Yiğit
13.10.2017 - 02:38
open2ndActivity() bir method/fonksiyon, o yüzden başka bir fonksiyon/metod içinde deklare edemezsin MainActivity içine at derken aşağıdaki şekilde kastettim
picture-103767-1491764696.jpg
elfaybkeasln
12.10.2017 - 11:59

Monitöre düşen hatayı paylaşır mısın?

oziwan
13.10.2017 - 01:39
Emulator olarak telefonu kullanıyorum 'Maalesef uygulama durdu.' yazıyor.
Elif Aybike Aslan
13.10.2017 - 06:40
Uygulama durduruldu hatasını aldığında Android Studioda sol alt kısımda android monitör yazan bir kısım var hatanın ne olduğu ve hangi sayfada kaçıncı satırda olduğu oraya düşecektir. (Kırmızı yazılar). Ekran görüntüsünü paylaşırsan yardımcı olabilirim :)
Profile picture for user ademb14
ademb14
12.10.2017 - 11:15
android:onClick="main2activity" bu kodu silin Butona iki tane on click tanımlamışsınız
oziwan
12.10.2017 - 11:31
Sildim ama sorun yine devam ediyor.